Grafiikkaliukuhihna

Periaatteellinen kuvaus liukuhihnasta.

Grafiikkaliukuhihna tarkoittaa tietokonegrafiikassa vaiheita, joita tarvitaan kolmiulotteisen kuvan renderöintiin kaksiulotteiselle näytölle.[1] Grafiikkajärjestelmää kutsutaan liukuhihnaksi koska matemaattisen mallin muunnos pikseleiksi näytölle koostuu useista vaiheista ja tyypillisessä arkkitehtuurissa nämä suoritetaan peräkkäisessä sarjassa, jossa yhden vaiheen tulos työnnetään seuraavaan vaiheeseen ja edellinen voi aloittaa seuraavan polygonin käsittelemisen välittömästi.[2]

Grafiikkasuorittimien ominaisuudet ovat kehittyneet kiinteätoimisista (konfiguroitavista) suuremmalle ohjelmoitavuudelle.[3] Vanhoissa ohjelmointirajapinnoissa oli parametreja eri vaiheille, mutta kiinteätoimisen liukuhihnan malli on korvattu useissa yhteyksissä.[2] Tyypillisessä grafiikkaliukuhihnassa on vaiheet:[2]

  1. (verteksit) verteksikohtainen muunnos näyttöavaruuteen
  2. (rasterointi) kolmiokohtainen iteraatio, perspektiivikorjaus
  3. (pikseli) pikselikohtainen varjostus
  4. (lopputuloksen yhdistäminen) varjostuksen yhdistäminen väri- ja syvyyspuskurien kanssa

Ohjelmoitavassa liukuhihnassa vaiheiden järjestys on kiinteä, mutta niiden toteutus on ohjelmoitavissa.[2] Historiallisista syistä vaiheiden ohjelmia kutsutaan shader-ohjelmiksi ja ne ovat grafiikkaohjelmia eivätkä vain rajoittuneita pisteiden värien laskentaan.[2] Geometria-shader voi muuttaa myöhemmissä vaiheissa käsiteltävien kolmioiden joukkoa, tesselaatio-shader muuttaa pinnan korkean tason kuvauksen joukoksi kolmioita ja verteksi-shader tekee sijainnin transformaation eikä vaikuta väriin mitenkään.[2] Vaihtoehtoisesti mesh-shader yksinkertaistaa geometrian käsittelyn pienempään määrään vaiheita tarjoamalla vaihtoehdon perinteisille verteksi-, tesselaatio- ja geometria-vaiheille.[4]

Kolmiulotteisen grafiikan renderöintiliukuhihnan vuokaavio (ohjelmoitavat vaiheet vihreällä).

Eräs vaiheistus suoralla valaistuksella on:[5]

  1. mallin transformaatio (primitiivien transformaatio maailman koordinaatteihin, kolmiulotteinen)
  2. kameratransformaatio (primitiivien transformaatio kameran koordinaatteihin, kolmiulotteinen)
  3. valaistus
  4. projektiotransformaatio (muunnos kameran kaksiulotteiseen koordinaatistoon9
  5. leikkaus (kameran ulkopuolelle jäävien primitiivien poistaminen)
  6. muunnos (pikselin piirto, teksturointi, piilotettujen pintojen poistaminen)

Syötteenä alussa ovat geometriset primitiivit ja lopputuloksena on kuva.[5]

  1. Graphics pipeline docs.microsoft.com. 24.2.2022. Viitattu 29.6.2022. (englanniksi)
  2. a b c d e f Viittausvirhe: Virheellinen <ref>-elementti;viitettä cgpp ei löytynyt
  3. Viittausvirhe: Virheellinen <ref>-elementti;viitettä rtr ei löytynyt
  4. Christoph Kubisch: Mesh Shading for Vulkan khronos.org. 1.9.2022. Viitattu 7.10.2022. (englanniksi)
  5. a b 3D Polygon Rendering Pipeline (PDF) connellybarnes.com. Viitattu 8.7.2022. (englanniksi)

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search